package ihm;

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.Vector;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.EtchedBorder;
import javax.swing.border.TitledBorder;

import metier.Film;
import dao.DaoProjetCinema;

public class FenetreModifSupFilm extends JInternalFrame implements ActionListener, ItemListener
{
	private ButtonGroup bgNouveau;
	private JTextField txtDuree;
	private JTextField txtNbreSemaines;
	private JLabel lblTitre;
	private JLabel lblDure;
	private JLabel lblNombreDeSemaines;
	private JTextField txtDateSortie;
	private JPanel panel;
	private JPanel panel_1;
	private JLabel lblTitre_1;
	private JLabel label;
	private JButton btnModifier;
	private JButton btnSupprimer;
	private JComboBox<String> lstTitre;
	private Vector<Film> lesFilms;
	private JTextField txtTitre;
	/**
	 * Create the frame.
	 */
	public FenetreModifSupFilm(Vector<Film> lesFilms)
	{
		getContentPane().setLayout(null);
		
		this.lesFilms = lesFilms;
		
		panel = new JPanel();
		panel.setForeground(Color.BLACK);
		panel.setBorder(new TitledBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null), "s\u00E9lection", TitledBorder.LEADING, TitledBorder.TOP, null, new Color(0, 0, 0)));
		panel.setBounds(183, 11, 376, 93);
		getContentPane().add(panel);
		panel.setLayout(null);
		
		lstTitre = new JComboBox <String>();
		for(Film f: lesFilms)
		{
			lstTitre.addItem(f.getTitreFilm());
		}
		lstTitre.addItemListener(this);
		lstTitre.setBounds(140, 40, 177, 22);
		panel.add(lstTitre);
		
		lblTitre = new JLabel("Titre :");
		lblTitre.setBounds(27, 44, 46, 14);
		panel.add(lblTitre);
		
		panel_1 = new JPanel();
		panel_1.setForeground(Color.BLACK);
		panel_1.setBorder(new TitledBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null), "modification", TitledBorder.LEADING, TitledBorder.TOP, null, new Color(0, 0, 0)));
		panel_1.setBounds(183, 146, 376, 197);
		getContentPane().add(panel_1);
		panel_1.setLayout(null);
		
		lblDure = new JLabel("Dur\u00E9e :");
		lblDure.setBounds(131, 108, 52, 14);
		panel_1.add(lblDure);
		
		lblNombreDeSemaines = new JLabel("Nombre de semaines :");
		lblNombreDeSemaines.setBounds(61, 133, 151, 14);
		panel_1.add(lblNombreDeSemaines);
		
		txtDateSortie = new JTextField();
		txtDateSortie.setBounds(199, 74, 139, 20);
		panel_1.add(txtDateSortie);
		txtDateSortie.setColumns(10);
		
		txtDuree = new JTextField();
		txtDuree.setBounds(199, 105, 139, 20);
		panel_1.add(txtDuree);
		txtDuree.setColumns(10);
		
		txtNbreSemaines = new JTextField();
		txtNbreSemaines.setBounds(199, 130, 139, 20);
		panel_1.add(txtNbreSemaines);
		txtNbreSemaines.setColumns(10);
		
		lblTitre_1 = new JLabel("Titre :");
		lblTitre_1.setBounds(137, 46, 46, 14);
		panel_1.add(lblTitre_1);
		
		label = new JLabel("Date de sortie :");
		label.setBounds(92, 77, 97, 14);
		panel_1.add(label);
		
		txtTitre = new JTextField();
		txtTitre.setBounds(199, 43, 139, 20);
		panel_1.add(txtTitre);
		txtTitre.setColumns(10);
		
		btnModifier = new JButton("Modifier");
		btnModifier.addActionListener(this);
		btnModifier.setBounds(545, 371, 130, 23);
		getContentPane().add(btnModifier);
		
		btnSupprimer = new JButton("Supprimer");
		btnSupprimer.addActionListener(this);
		btnSupprimer.setBounds(40, 371, 130, 23);
		getContentPane().add(btnSupprimer);
		
		chargementDonnees();

	}

	public void itemStateChanged(ItemEvent evt) 
	{
		   if(evt.getSource() == lstTitre)
           {
                   chargementDonnees();
           }
	}
	 public void chargementDonnees()
     {
             Film f;
             f = (Film) lstTitre.getSelectedItem();
             txtDateSortie.setText(String.valueOf(f.getDateSortie()));
             txtTitre.setText(f.getTitreFilm());
             txtNbreSemaines.setText(String.valueOf(f.getNbSemaine()));
             txtDuree.setText(String.valueOf(f.getDureeFilm()));
     }
	 
	 public void actionPerformed(ActionEvent e)
	 {	
		if (e.getSource() == this.btnModifier)
		{
			 Film unFilm = (Film) lstTitre.getSelectedItem();
			 
             unFilm.setTitreFilm(txtTitre.getText());
//	         unFilm.setDateSortie(Integer.toString(txtDateSortie.getText()));
             unFilm.setDureeFilm(Integer.parseInt(txtDuree.getText()));
             unFilm.setNbSemaine(Integer.parseInt(txtNbreSemaines.getText()));
             lesFilms.setElementAt(unFilm,lstTitre.getSelectedIndex());

			
             if(!txtTitre.getText().equals("") && !txtDateSortie.getText().equals(""))
             {
                     if(DaoProjetCinema.modifierFilm(unFilm) == 1)
                     {
                    	 	JOptionPane.showMessageDialog(null, "Le Film a été modifié.");  
                     }
                         
              }   
             else
             {
                     JOptionPane.showMessageDialog(null, "Tout les champs doivent être renseigné.", "Erreur", JOptionPane.ERROR_MESSAGE);
             }
                 
		}
		if(e.getSource() == btnSupprimer)
		{
			{
                Film leFilm;
                leFilm = (Film) lstTitre.getSelectedItem();

                if(DaoProjetCinema.supprimerFilm(leFilm) == 1)
                {
                        lesFilms.remove(leFilm);
                        JOptionPane.showMessageDialog(null, "Le Film a été supprimé", "Information", JOptionPane.INFORMATION_MESSAGE);
                        txtTitre.setText("");
                        txtDuree.setText("");
                        txtNbreSemaines.setText("");
                        txtDateSortie.setText("");
                }
                else
                {
                        JOptionPane.showMessageDialog(null, "Le Film n'a pas pu être supprimé", "Information", JOptionPane.ERROR_MESSAGE);
                }
			}
		}

	}

}
